/box-whitespace-create {           % =>
  box-text-create

  dup get-box-dict
  /Methods get
  dup /reflow {box-whitespace-reflow} put
  dup /is-whitespace {box-whitespace-is-whitespace} put
  pop

  dup /box-whitespace add-type

  ( ) 1 index put-text
} def

/box-whitespace-is-whitespace {    % => Box
  pop true
} def

/box-whitespace-reflow {           % => Context Parent Box
% Check if there are any boxes in parent's line box
  1 index                          % => Context Parent Box Parent
  box-container-line-box-empty {   % => Context Parent Box
% The very first whitespace in the line box should not affect neither height nor baseline of the line box;
% because following boxes can be smaller that assumed whitespace height
% Example: <br>[whitespace]<img height="2" width="2"><br>; whitespace can overextend this line
    0 1 index put-height    
    0 1 index put-width
    0 1 index put-default-baseline
  } {                              % => Context Parent Box 
% Duplicate whitespace boxes should not offset further content and affect the line box length
    1 index
    get-line                       % => Context Parent Box Line
    array-last
    /box-whitespace is-a {         % => Context Parent Box
      0 1 index put-height    
      0 1 index put-width
      0 1 index put-default-baseline
    } if
  } ifelse
    
% Determine the baseline position and height of the text-box using line-height CSS property
   dup box-generic-apply-line-height
    
% set default baseline
   dup get-default-baseline
   1 index put-baseline

% append current box to parent line box
   dup 2 index
   box-container-append-line       % => Context Parent This

% Determine coordinates of upper-left _margin_ corner
   1 index 1 index
   box-generic-guess-corner        % => Context Parent This

% Offset parent current X coordinate
   dup get-full-width
   2 index get-current-x
   add                             % => Context Parent This CX'
   2 index put-current-x           % => Context Parent This

% Extends parents height
   dup get-bottom-margin           % => Context Parent This BM
   2 index
   box-generic-extend-height       % => Context Parent This 

% Update the value of current collapsed margin; pure text (non-span)
% boxes always have zero margin

  2 index context-pop-collapsed-margin
  0 3 index context-push-collapsed-margin

  pop pop pop
} def